///////////////////////////////////////////////////////////////////////////////
//-----------------------------------------------------------------------------
#include <Scene/IObjectLoader.h>
#include <File/File.h>

std::vector<IObjectLoader*> IObjectLoader::m_objectLoaders;

//-----------------------------------------------------------------------------

void	IObjectLoader::RegisterLoader(IObjectLoader*	loader)
{
	m_objectLoaders.push_back(loader);
}

//-----------------------------------------------------------------------------

void	IObjectLoader::UnregisterLoader(IObjectLoader*	loader)
{
	std::vector<IObjectLoader*>::iterator iter;
	for( iter = m_objectLoaders.begin(); iter != m_objectLoaders.end(); iter++ )
	{
		if( (*iter) == loader )
		{
			SAFE_DEL( (*iter) );
			m_objectLoaders.erase( iter );
		}
	}
}

//-----------------------------------------------------------------------------

void	IObjectLoader::UnregisterLoaders()
{
	std::vector<IObjectLoader*>::iterator iter;
	for( iter = m_objectLoaders.begin(); iter != m_objectLoaders.end(); iter++ )
	{
		SAFE_DEL( (*iter) );
	}
	m_objectLoaders.clear();
}

//-----------------------------------------------------------------------------

IObjectLoader*	IObjectLoader::GetLoaderForFile(File* file)
{
	std::vector<IObjectLoader*>::iterator iter;
	for( iter = m_objectLoaders.begin(); iter != m_objectLoaders.end(); iter++ )
	{
		if( (*iter)->CanLoad( file ) )
		{
			return (*iter);
		}
	}
	return NULL;
}

//-----------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////
